package com.qhhc.service;

import com.qhhc.entity.CustomerServiceSession;

import java.util.List;
import java.util.Map;

/**
 * 客服会话服务接口
 */
public interface CustomerServiceSessionService {
    /**
     * 创建会话
     * 
     * @param session 会话信息
     * @return 会话ID
     */
    String createSession(CustomerServiceSession session);
    
    /**
     * 获取会话信息
     * 
     * @param sessionId 会话ID
     * @return 会话信息
     */
    CustomerServiceSession getSessionBySessionId(String sessionId);
    
    /**
     * 获取用户会话列表
     * 
     * @param userId 用户ID
     * @return 会话列表
     */
    List<CustomerServiceSession> getSessionsByUserId(Long userId);
    
    /**
     * 获取访客会话列表
     * 
     * @param visitorId 访客ID
     * @return 会话列表
     */
    List<CustomerServiceSession> getSessionsByVisitorId(String visitorId);
    
    /**
     * 获取客服会话列表
     * 
     * @param serviceId 客服ID
     * @return 会话列表
     */
    List<CustomerServiceSession> getSessionsByServiceId(Long serviceId);
    
    /**
     * 更新会话状态
     * 
     * @param sessionId 会话ID
     * @param status 状态
     * @return 结果
     */
    int updateSessionStatus(String sessionId, Integer status);
    
    /**
     * 会话评价
     * 
     * @param sessionId 会话ID
     * @param score 评分
     * @param content 评价内容
     * @return 结果
     */
    int evaluateSession(String sessionId, Integer score, String content);
    
    /**
     * 更新会话最后一条消息
     * 
     * @param sessionId 会话ID
     * @param lastMessage 最后一条消息
     * @return 结果
     */
    int updateSessionLastMessage(String sessionId, String lastMessage);
    
    /**
     * 分页获取会话列表
     * 
     * @param params 查询参数
     * @return 会话列表
     */
    List<CustomerServiceSession> getSessionList(Map<String, Object> params);
    
    /**
     * 获取会话数量
     * 
     * @param params 查询参数
     * @return 会话数量
     */
    int getSessionCount(Map<String, Object> params);
} 